Cloud computing refers to a technique whereby a first agent can outsource computational tasks to a second agent. The second agent typically corresponds to a server in a remote data processing center. In operation, the first agent provides input data to be processed by the second agent. The second agent processes the data and provides a computation result to the second agent.
The first agent may opt to perform a computation in the above-described manner because it reduces the computational burden placed on the first agent. Further, this manner of computation reduces the need for the first agent to locally provide for robust computational resources. Because of these merits, both individual consumers and organizational entities are expected to make increasing use of cloud computing resources.
However, the cloud computing technique is not without its potential drawbacks. In many cases, the first agent will ask the second agent to perform computations on sensitive data, such as financial data, patient record data, etc. The first agent may not wish to divulge the data to the second agent. Nor will the first agent wish to divulge the data to other entities that also use the services of the second agent.